<?php

require_once 'DAO/Banco.php';
require_once 'DAO/DaoRepublica.php';
require_once 'Model/EventoRepublica.php';

class DaoEventoRepublica extends Banco {

    function getEventosRepublicas() {
        $eventos = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT ERE_CODIGO, ERE_CODREPUBLICA, ERE_TITULO, ERE_DESCRICAO, ERE_DATACRIACAO, ERE_DATA, ERE_HORAINICIO, ERE_HORAFIM FROM TB_EVENTOREPUBLICA WHERE ERE_ATIVO='S';")) {
            $sql->execute();
            echo $sql->error;
            $sql->bind_result($codigo, $rep, $titulo, $descricao, $criacao, $data, $inicio, $fim);
            while ($sql->fetch()) {
                $eve = new EventoRepublica();
                $dr = new DaoRepublica();
                $eve->setCodigo($codigo);
                $eve->setData($data);
                $eve->setDataCriacao($criacao);
                $eve->setDescricao($descricao);
                $eve->setHoraFim($fim);
                $eve->setHoraInicio($inicio);
                $eve->setRepublica($dr->getRepublica($rep));
                $eve->setTitulo($titulo);
                $eventos[] = (object) $eve;
            }
        }
        echo $banco->error;
        return $eventos;
    }

    function getEventosByRepublica($codigoRepublica) {
        $eventos = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT ERE_CODIGO, ERE_CODREPUBLICA, ERE_TITULO, ERE_DESCRICAO, ERE_DATACRIACAO, ERE_DATA, ERE_HORAINICIO, ERE_HORAFIM FROM TB_EVENTOREPUBLICA WHERE ERE_CODREPUBLICA=? AND ERE_ATIVO='S';")) {
            $sql->bind_param('i', $codigoRepublica);
            $sql->execute();
            $sql->bind_result($codigo, $rep, $titulo, $descricao, $criacao, $data, $inicio, $fim);
            while ($sql->fetch()) {
                $eve = new EventoRepublica();
                $dr = new DaoRepublica();
                $eve->setCodigo($codigo);
                $eve->setData($data);
                $eve->setDataCriacao($criacao);
                $eve->setDescricao($descricao);
                $eve->setHoraFim($fim);
                $eve->setHoraInicio($inicio);
                $eve->setRepublica($dr->getRepublica($rep));
                $eve->setTitulo($titulo);
                $eventos[] = (object) $eve;
            }
        }
        return $eventos;
    }

    function getEvento($codigoEvento) {
        $eve = null;
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT ERE_CODIGO, ERE_CODREPUBLICA, ERE_TITULO, ERE_DESCRICAO, ERE_DATACRIACAO, ERE_DATA, ERE_HORAINICIO, ERE_HORAFIM FROM TB_EVENTOREPUBLICA WHERE ERE_CODIGO=? AND ERE_ATIVO='S';")) {
            $sql->bind_param('i', $codigoEvento);
            $sql->execute();
            $sql->bind_result($codigo, $rep, $titulo, $descricao, $criacao, $data, $inicio, $fim);
            while ($sql->fetch()) {
                $eve = new EventoRepublica();
                $dr = new DaoRepublica();
                $eve->setCodigo($codigo);
                $eve->setData($data);
                $eve->setDataCriacao($criacao);
                $eve->setDescricao($descricao);
                $eve->setHoraFim($fim);
                $eve->setHoraInicio($inicio);
                $eve->setRepublica($dr->getRepublica($rep));
                $eve->setTitulo($titulo);
            }
        }
        return $eve;
    }

    function addEventoRepublica(EventoRepublica $eventoRepublica) {
        Banco::conecta();
        $banco = Banco::getBanco();
        $lastid = -1;
        $codigo = $eventoRepublica->getCodigo();
        $republica = NULL;
        if (is_a($eventoRepublica->getRepublica(), 'Republica')) {
            $republica = $eventoRepublica->getRepublica()->getCodigo();
        }
        $titulo = $eventoRepublica->getTitulo();
        $descricao = $eventoRepublica->getDescricao();
        $data = $eventoRepublica->getData();
        $inicio = $eventoRepublica->getHoraInicio();
        $fim = $eventoRepublica->getHoraFim();
        if ($sql = $banco->prepare("INSERT INTO TB_EVENTOREPUBLICA VALUES(?, ?, ?, ?, NOW(), ?, ?, ?,DEFAULT);")) {
            $sql->bind_param('iisssss', $codigo, $republica, $titulo, $descricao, $data, $inicio, $fim);
            $sql->execute();
            $lastid = $sql->insert_id;
            $sql->close();
        }
        $eventoRepublica->setCodigo($lastid);
        return $eventoRepublica;
    }

    function deleteEventoByCodigo($codEvento) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("UPDATE TB_EVENTOREPUBLICA SET ERE_ATIVO='N' WHERE ERE_CODIGO = ?;")) {
            $sql->bind_param('i', $codEvento);
            $sql->execute();
            $sql->close();
        }
    }
    
    function updateEvento(EventoRepublica $evento){
        Banco::conecta();
        $banco = Banco::getBanco();
        $titulo = $evento->getTitulo();
        $descricao = $evento->getDescricao();
        $data = $evento->getData();
        $inicio = $evento->getHoraInicio();
        $fim = $evento->getHoraFim();
        $codEvento = $evento->getCodigo();
        echo $codEvento;
        if ($sql = $banco->prepare("UPDATE TB_EVENTOREPUBLICA SET ERE_TITULO = ?, ERE_DESCRICAO = ?, ERE_DATA = ?, ERE_HORAINICIO = ?, ERE_HORAFIM = ? WHERE ERE_CODIGO = ?;")) {
            $sql->bind_param('sssssi',$titulo, $descricao, $data, $inicio, $fim, $codEvento);
            $sql->execute();
            $sql->close();
        }
    }
    
}

?>
